<?php
// 本类由系统自动生成，仅供测试用途
class PartAction extends Action {

	
	//预设  para一般自身的所有以及扩展的zabojingua东西
	//聚合
    private $all=array(
    	'mdmk'=>'Part',//NB
  		'ttl'=>'部件',
  		'jn'=>array('tb_item ON f_part_itemid=itemid','tb_parttype ON f_part_parttypeid=parttypeid'),//NB
      //自己的全部+f的显示的东西
  		'para'=>array('partid'=>'partID','f_part_itemid'=>'项目','itemnm'=>'项目名称','itemcode'=>'项目编号','itemctn'=>'装箱量','partnm'=>'部件名称','partcode'=>'部件编码','f_part_parttypeid'=>'部件类别','parttypenm'=>'部件类别','partmtyp'=>'MTyp','partvolumeperpa'=>'每拍数量','partunit'=>'单位','partvolumepc'=>'每箱用量'),//NB
  		//抛去不是zabojin的属性针对para
      'notself'=>array('itemnm','itemcode','itemctn','parttypenm'),
       ##########modify 添加修改中不需要展示和理会的属性 针对para
      'no_update'=>array('partid','itemnm','itemcode','itemctn','parttypenm'),
      #####update的时候允许为空的值 针对zabojin刨掉不然显示的update字段后
      'allowempty'=>array('partmtypm'),

      'hide_fld'=>array('partid','f_part_itemid','f_part_parttypeid'),//NB
      'hide_cdt'=>array('partid','f_part_itemid','itemctn','parttypenm'),//NB
  		
    //   'spccdtls'=>array('spccdt_0'=>array('partid<>0','partID不为0【废话只是测试】')),
  		// 'odrls'=>array('partnm'),
    //   'spccdt_dflt'=>array('spccdt_0'),
    //   'odr_dflt'=>array('partnm'=>'ASC'),

      'spccdtls'=>array(),//NB
      'odrls'=>array(),//NB
      'spccdt_dflt'=>array(),//NB
      'odr_dflt'=>array(),//NB
      //hide的fld必须有，他们虽然不显示但是必须选择，这样才能在第一次进入query的时候，隐藏属性可以被调用，特别是id和fid
  		'fld_dflt'=>array('partid','f_part_itemid','itemnm','itemcode','itemctn','partnm','partcode','f_part_parttypeid','parttypenm','partmtyp','partvolumeperpa','partunit','partvolumepc'),//NB
  		'cdt_dflt'=>array(),//NB
  		
  		'lmt_dflt'=>10,//NB
  		
  		'defaultls'=>1,//默认枚举//NB
  		##########view
  		'no_view'=>array('partid','f_part_itemid','f_part_parttypeid'),
	   
      #########删除提醒
      'deleteconfirm'=>'确定要删除此条记录？',
      #####转义
      'transmean'=>array(),//NB
      #####默认值
      'dfltvalue'=>array(),
      ########新增属性
      'linkage'=>array(),//如果ccc的变换需要转换成2015_ccc 就是2  否则如果是1 非2情况下联动没有值，不允许下拉，3联动不造成下拉有无
      ########这里是谁影响谁，用在AJAX联动 效果极佳
      'impactfactor'=>array(),
      
    );

    //公版
    public function query(){
    	header("Content-Type:text/html; charset=utf-8");
    	$pb=D('PB');
      $pb->query($this->all);
      $this->display('query');
  
    }
    
    //公版
    public function view(){
    	header("Content-Type:text/html; charset=utf-8");
    	$pb=D('PB');
    	$pb->view($this->all);
		  $this->display('Cmn:view');
    }
   
   	//公版
   	public function update(){
   		header("Content-Type:text/html; charset=utf-8");
    	$pb=D('PB');
    	$pb->update($this->all);
		  $this->display('Cmn:update');
   	}

   	//公版
   	public function doupdate(){
   		header("Content-Type:text/html; charset=utf-8");
   		$pb=D('PB');
   		$arr_pattern=$pb->doupdate($this->all);
   		$data['pattern']=$arr_pattern['data'];

   		$this->ajaxReturn($data,'json');
   	}

   	//公版
   	public function dodelete(){
   		header("Content-Type:text/html; charset=utf-8");
   		$pb=D('PB');
   		$pb->dodelete($this->all);
  		
   		$this->ajaxReturn($data,'json');
   	}

    public function dolinkage(){
      header("Content-Type:text/html; charset=utf-8");
      $nb=D('NB');
      $arr=$nb->dolinkage($this->all);
      
      $data=$arr['data'];
      
      $this->ajaxReturn($data,'json');
    }

    public function fenxi(){
        header("Content-Type:text/html; charset=utf-8");
        $item=D('Item');$part=D('Part');$parttype=D('Parttype');

        $all=$this->all;
        $para=$all['para'];
        
        import('@.ORG.PHPExcel');
        //设定缓存模式为经gzip压缩后存入cache（PHPExcel导入导出及大量数据导入缓存方式的修改 ）
        $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
        $cacheSettings = array();
        PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);
    
        $objPHPExcel = new PHPExcel();
        // $con = mysql_connect("localhost","root","123456");
        // mysql_select_db('bms');
        //读入上传文件
        $myfl=session('myfl');$myfl=str_replace('/'.C('PROJECT'),'.',$myfl);
        //$objPHPExcel = PHPExcel_IOFactory::load($_FILES["inputExcel"]["tmp_name"]);
        $objPHPExcel = PHPExcel_IOFactory::load($myfl);
         
        $currentSheet = $objPHPExcel->getSheet(0);// 当前页
        $row_num = $currentSheet->getHighestRow();// 当前页行数
        $col_max = $currentSheet->getHighestColumn(); // 当前页最大列号

        $rslt='';
        for($i = 2; $i <= $row_num; $i++){
            
            $rslt_one='';
            
            $ads = 'A' . $i; // 单元格坐标address
            $itemcode = trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'B' . $i; // 单元格坐标address
            $itemnm=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'C' . $i; // 单元格坐标address
            $itemctn=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'D' . $i; // 单元格坐标address
            $partnm=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'E' . $i; // 单元格坐标address
            $partcode=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'F' . $i; // 单元格坐标address
            $parttypenm=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'G' . $i; // 单元格坐标address
            $partmtyp=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'H' . $i; // 单元格坐标address
            $partvolumeperpa=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'I' . $i; // 单元格坐标address
            $partunit=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            $ads = 'J' . $i; // 单元格坐标address
            $partvolumepc=trim($currentSheet->getCell($ads)->getFormattedValue());//cell_value
            
            //如果连续两个值都空白了就直接continue
            if(!$itemnm&&!$itemcode){continue;}

            if(!$itemnm){$rslt_one=$rslt_one.$all['itemnm'].'为空';}
            if(!$itemcode){$rslt_one=$rslt_one.$all['itemcode'].'为空';}
            if(!$itemctn){$rslt_one=$rslt_one.$all['itemctn'].'为空';}
            if(!$partnm){$rslt_one=$rslt_one.$all['partnm'].'为空';}
            if(!$partcode){$rslt_one=$rslt_one.$all['partcode'].'为空';}
            if(!$parttypenm){$rslt_one=$rslt_one.$all['parttypenm'].'为空';}
            if(!$partvolumeperpa){$rslt_one=$rslt_one.$all['partvolumeperpa'].'为空';}
            if(!$partunit){$rslt_one=$rslt_one.$all['partunit'].'为空';}
            if(!$partvolumepc){$rslt_one=$rslt_one.$all['partvolumepc'].'为空';}

            if($rslt_one){
              $rslt_one='第'.$i.'条有问题：'.$rslt_one.'<br>';
            }else{
              $arr_itemo=$item->getitemobyitemnmanditemcode($itemnm,$itemcode);$itemo=$arr_itemo['data'];
              if(!$itemo){
                $arr_itemo=$item->add($itemnm,$itemcode,$itemctn);$itemo=$arr_itemo['data'];
              }
              $arr_parttypeo=$parttype->getparttypeobyparttypenm($parttypenm);$parttypeo=$arr_parttypeo['data'];
              if(!$parttypeo){
                $arr_parttypeo=$parttype->add($parttypenm);$parttypeo=$arr_parttypeo['data'];
              }
              $itemid=$itemo['itemid'];$parttypeid=$parttypeo['parttypeid'];
              $arr_parto=$part->getpartobypartnmandpartcodeanditemid($partnm,$partcode,$itemid);$parto=$arr_parto['data'];
              
              if(!$parto){
                $arr_parto=$part->add($itemid,$partnm,$partcode,$parttypeid,$partmtyp,$partvolumeperpa,$partunit,$partvolumepc);$parto=$arr_parto['data'];
              }else{
                // $rslt_one='第'.$i.'条有问题：这个项目已经添加过了<br>';
                // 有则改之
                if($parttypeid==$parto['f_part_parttypeid']&&$partmtyp==$parto['partmtyp']&&$partvolumeperpa==$parto['partvolumeperpa']&&$partunit==$parto['partunit']&&$partvolumepc==$parto['partvolumepc']){
                  $rslt_one='第'.$i.'条有问题：这个项目已经添加过了<br>';
                }else{
                  $part->mdf($itemid,$partnm,$partcode,$parttypeid,$partmtyp,$partvolumeperpa,$partunit,$partvolumepc,$parto['partid']);
                }
                
              }

            }

            $rslt=$rslt.$rslt_one;
         
        }
        if($rslt){$jieguo=2;}else{$jieguo=1;}
        $data['jieguo']=$jieguo;
        $data['rslt']=$rslt;
        

        $this->ajaxReturn($data,'json');
    }

}